﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.UI.Bovespa.Corretagem.Communication.Bovespa.Corretagem.Desconto;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Corretagem.Communication.Translator.ModelToDataContract
{
    //Task  : 5617 
    // Data : 16/03/2009
    // Autor:Apsilva
    /// <summary>
    /// Translator Desconto de Model para Data Contract
    /// </summary>
    /// 
    public class Desconto
    {

        #region Translate Desconto

        public DescontoRequest ToDescontoRequest(Model.Desconto request)
        {
            DescontoRequest response = new DescontoRequest();
            response.PercentualAllIn = request.PercentualAllIn;
            response.PercentualDescontoAcresimo = request.PercentualDescontoAcresimo;

            PeriodoRequest periodo = new PeriodoRequest();
            if (request.Periodo != null)
            {
                periodo.DataFinal = request.Periodo.DataFinal;
                periodo.DataInicial = request.Periodo.DataInicial;
            }
            response.Periodo = periodo; 
            return response; 
        }

        public List<DescontoRequest> ToDescontoRequest(ModelCollection<Model.Desconto> request)
        {
            List<DescontoRequest> response = new List<DescontoRequest>();
            foreach (Model.Desconto item in request)
            {
                response.Add(ToDescontoRequest(item));

            }
            return response;
        }

        #endregion

        #region Translate FiltroDescontoChave

        public  FiltroDescontoChaveRequest ToFiltroDescontoChaveRequest (Model.Parameter.FiltroDescontoChave request)
        {
            FiltroDescontoChaveRequest response = new FiltroDescontoChaveRequest();
            response.Data = request.Data;
            response.PercentualAllIn = request.PercentualAllIn;
            response.PercentualDescontoAcresimo = request.PercentualDescontoAcresimo;

            PeriodoRequest periodo = new PeriodoRequest();
            if (request.Periodo != null)
            {
                periodo.DataFinal = request.Periodo.DataFinal;
                periodo.DataInicial = request.Periodo.DataInicial;
            }
            response.Periodo = periodo; 
            
            return response; 
        }

        public List<FiltroDescontoChaveRequest> ToFiltroDescontoChaveRequest( ModelCollection<Model.Parameter.FiltroDescontoChave> request)
        {
            List<FiltroDescontoChaveRequest> response = new List<FiltroDescontoChaveRequest>();
            foreach (Model.Parameter.FiltroDescontoChave item in request)
            {
                response.Add(ToFiltroDescontoChaveRequest(item));
            }
            return response;
        }

        #endregion 

        #region Translate FiltroDesconto

        public FiltroDescontoRequest ToFiltroDescontoRequest(Model.Parameter.FiltroDesconto request)
        {
            FiltroDescontoRequest response = new FiltroDescontoRequest();
            response.Data = request.Data;

            return response;
        }

        public List<FiltroDescontoRequest> ToFiltroDescontoRequest(ModelCollection<Model.Parameter.FiltroDesconto> request)
        {
            List<FiltroDescontoRequest> response = new List<FiltroDescontoRequest>();
            foreach (Model.Parameter.FiltroDesconto item in request)
            {
                response.Add(ToFiltroDescontoRequest(item));
            }
            return response;
        }

        #endregion 
    }

}
